package com.seminario.rest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ConsultaSQL {

	Connection conexion;
	Statement sentencia;
	ResultSet resultado;
	String host, user, password, DB;

	public ConsultaSQL() {
	}

	public ConsultaSQL(String hostName, String baseDatos, String usuario,
			String pass) {
		DB = baseDatos;
		host = hostName;
		user = usuario;
		password = pass;
		try {
			Class.forName("org.gjt.mm.mysql.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			conexion = DriverManager.getConnection("jdbc:mysql://" + hostName
					+ "/" + baseDatos, usuario, pass);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			sentencia = conexion.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public void Conectar() {
		try {
			if (!conexion.isClosed())
				System.out.println("Conexion exitosa");
			else
				System.out.println("Coxexion fallida");
		} catch (Exception e) {
			System.out.println("Excepcion " + e);
			e.printStackTrace();
		}
	}

	public void Desconectar() {
		try {
			if (!conexion.isClosed()) {
				conexion.close();
				System.out.println("Desconectado");
			} else
				System.out.println("Coxexion fallida");
		} catch (Exception e) { // Error en algun momento.
			System.out.println("Excepcion " + e);
			e.printStackTrace();
		}
	}

	public boolean Solicitud_de_acceso(String ID_tarjeta_RFID, String ID_lector_RFID) {
		boolean Permitido = false;
		String Puerta_leida = "";
		try {
			if (!conexion.isClosed()) {	// La consulta
				Statement st = conexion.createStatement();
				ResultSet idpu = st.executeQuery("select IDPU from Permisos where IDPE in (select IDPE from Usuarios where IDU=\"" + ID_tarjeta_RFID	+ "\") AND IDPU=\""	+ ID_lector_RFID + "\"");
				while (idpu.next()) {
					Puerta_leida = (String) idpu.getObject("IDPU");
					System.out.println(Puerta_leida);
				}
				Permitido = Puerta_leida.equals(ID_lector_RFID);// Este es el valor logico que va a permitir o negar el acceso a la puerta true=permitir false=denegar
				String exito, fecha;
				if (Permitido == true)
					exito = "1";
				else
					exito = "0";
				DateFormat formato_fechas = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
				Date fhora = new Date();
				fecha = formato_fechas.format(fhora);
				st.execute("INSERT INTO Registro (IDR,IDU,IDPU,FechaHora,Exito) VALUES (NULL,\"" + ID_tarjeta_RFID + "\",\"" + ID_lector_RFID + "\",\"" + fecha + "\",\"" + exito + "\")");
			}
		}
		catch (Exception e) {
			System.out.println("Excepcion " + e);
			e.printStackTrace();
		}
		return (Permitido);
	}
}
